package com.xxxy.ljh.myapplication.Adapter;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;

import com.xxxy.ljh.myapplication.nav.ActivityFragment;
import com.xxxy.ljh.myapplication.nav.ClubFragment;
import com.xxxy.ljh.myapplication.nav.HomeFragment;
import com.xxxy.ljh.myapplication.nav.MineFragment;

import java.util.List;

/**
 * ViewPager2的适配器类，用于管理Fragment页面的创建和数量
 */
public class ViewPagerAdapter extends FragmentStateAdapter {
    private List<String> titles;

    /**
     * 构造函数，初始化ViewPager适配器
     *
     * @param fragmentActivity 关联的FragmentActivity对象，不能为空
     * @param mTitles          页面标题列表，用于确定页面数量
     */
    public ViewPagerAdapter(@NonNull FragmentActivity fragmentActivity, List<String> mTitles) {
        super(fragmentActivity);
        this.titles = mTitles;
    }

    /**
     * 根据位置创建对应的Fragment实例
     *
     * @param position 页面位置索引
     * @return 对应位置的Fragment对象
     */
    @NonNull
    @Override
    public Fragment createFragment(int position) {
        // 根据不同位置返回对应的Fragment
        switch (position) {
            case 0:
                return new HomeFragment();
            case 1:
                return new ClubFragment();
            case 2:
                return new ActivityFragment();
            case 3:
                return new MineFragment();
            default:
                return new HomeFragment();
        }
    }

    /**
     * 获取页面总数
     *
     * @return 标题列表的大小，即页面总数
     */
    @Override
    public int getItemCount() {
        return titles.size();
    }
}

